<html>
<head><meta charset="utf-8"><title>async error handling terminology · project-error-handling · Zulip Chat Archive</title></head>
<h2>Stream: <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/index.html">project-error-handling</a></h2>
<h3>Topic: <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/async.20error.20handling.20terminology.html">async error handling terminology</a></h3>

<hr>

<base href="https://rust-lang.zulipchat.com">

<head><link href="https://rust-lang.github.io/zulip_archive/style.css" rel="stylesheet"></head>

<a name="209908558"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/async%20error%20handling%20terminology/near/209908558" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Charles Lew <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/async.20error.20handling.20terminology.html#209908558">(Sep 13 2020 at 01:32)</a>:</h4>
<p>Somehow, i feel there's a correspondence between "abort, retry, ignore" strategies and the async error handling strategies.  <code>?</code> means <code>abort</code>, <code>unwrap_or</code> etc means <code>ignore</code>, and there's no support for <code>retry</code> yet.</p>



<a name="210024249"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/async%20error%20handling%20terminology/near/210024249" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Stefan dns2utf8 Schindler <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/async.20error.20handling.20terminology.html#210024249">(Sep 14 2020 at 15:47)</a>:</h4>
<p>If you were to roll your own, how would you express a certain behaviour?</p>



<a name="210024410"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/async%20error%20handling%20terminology/near/210024410" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Stefan dns2utf8 Schindler <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/async.20error.20handling.20terminology.html#210024410">(Sep 14 2020 at 15:48)</a>:</h4>
<p>Like there are situations where 5 retries would be best, sometimes one needs to wait a certain amount of time before a retry and so on</p>



<a name="210038851"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/async%20error%20handling%20terminology/near/210038851" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Charles Lew <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/async.20error.20handling.20terminology.html#210038851">(Sep 14 2020 at 17:41)</a>:</h4>
<p>I haven't thought it through, but there're community crates like <a href="https://docs.rs/tokio-retry/">tokio-retry</a> or <a href="https://docs.rs/tower-retry">tower-retry</a> that serve as examples...</p>



<a name="210048683"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/async%20error%20handling%20terminology/near/210048683" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/async.20error.20handling.20terminology.html#210048683">(Sep 14 2020 at 19:02)</a>:</h4>
<p><span class="user-mention silent" data-user-id="116458">Charles Lew</span> <a href="#narrow/stream/257204-project-error-handling/topic/async.20error.20handling.20terminology/near/210038851">said</a>:</p>
<blockquote>
<p>I haven't thought it through, but there're community crates like <a href="https://docs.rs/tokio-retry/">tokio-retry</a> or <a href="https://docs.rs/tower-retry">tower-retry</a> that serve as examples...</p>
</blockquote>
<p>more recently there's also tower-hedge which implements a dynamic retry policy <a href="https://github.com/tower-rs/tower/blob/master/tower/src/hedge/mod.rs">https://github.com/tower-rs/tower/blob/master/tower/src/hedge/mod.rs</a></p>



<a name="210048962"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/async%20error%20handling%20terminology/near/210048962" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/async.20error.20handling.20terminology.html#210048962">(Sep 14 2020 at 19:04)</a>:</h4>
<p>I don't personally feel like "retry" is a fundamental operation of error handling in the same way that <code>?</code> represents the fundamental "try to do this" operation. Retries feel like higher level policies composed ontop of the <code>try</code> operation.</p>



<a name="210049076"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/async%20error%20handling%20terminology/near/210049076" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/async.20error.20handling.20terminology.html#210049076">(Sep 14 2020 at 19:05)</a>:</h4>
<p>&lt;deleted&gt;</p>



<a name="210049153"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/async%20error%20handling%20terminology/near/210049153" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/async.20error.20handling.20terminology.html#210049153">(Sep 14 2020 at 19:06)</a>:</h4>
<p>actually</p>



<a name="210049158"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/async%20error%20handling%20terminology/near/210049158" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/async.20error.20handling.20terminology.html#210049158">(Sep 14 2020 at 19:06)</a>:</h4>
<p>thinking about it thats not a clear distinction</p>



<a name="210049172"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/async%20error%20handling%20terminology/near/210049172" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/async.20error.20handling.20terminology.html#210049172">(Sep 14 2020 at 19:06)</a>:</h4>
<p>nvm on that last bit</p>



<a name="210049204"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/async%20error%20handling%20terminology/near/210049204" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/async.20error.20handling.20terminology.html#210049204">(Sep 14 2020 at 19:06)</a>:</h4>
<p>picking a default regardless of the content of the error is ignoring now that I think of it even for 10 seconds</p>



<a name="210049208"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/async%20error%20handling%20terminology/near/210049208" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/async.20error.20handling.20terminology.html#210049208">(Sep 14 2020 at 19:06)</a>:</h4>
<p>lol</p>



<a name="210065608"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/async%20error%20handling%20terminology/near/210065608" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Stefan dns2utf8 Schindler <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/async.20error.20handling.20terminology.html#210065608">(Sep 14 2020 at 21:29)</a>:</h4>
<p>To be honest, I start to see the benefits of the actor model more and more</p>



<a name="210065726"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/async%20error%20handling%20terminology/near/210065726" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Stefan dns2utf8 Schindler <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/async.20error.20handling.20terminology.html#210065726">(Sep 14 2020 at 21:30)</a>:</h4>
<p>So a parent actor can handle the child actors errors</p>



<a name="210065780"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/async%20error%20handling%20terminology/near/210065780" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Stefan dns2utf8 Schindler <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/async.20error.20handling.20terminology.html#210065780">(Sep 14 2020 at 21:31)</a>:</h4>
<p>That way one can implement different policies in different situations</p>



<hr><p>Last updated: Aug 07 2021 at 22:04 UTC</p>
</html>